package com.lenl.arithmetic.sort;

/**
 * @author Lenl
 * @version v1.0
 * @create 2022-04-30 21:09
 * @description 冒泡算法
 *
 * 每次冒泡最大数到末尾
 *
 */
public class BubbleSort {
    public static void main(String[] args) {
        int[] arr={3,9,-1,10,-2};
        int[] arr2={1,2,4,3,5};
        doBubbleSort(arr2);
        for (int i:arr2){
            System.out.print(i+" ");
        }
    }

    //执行冒泡排序算法
    public static int[] doBubbleSort(int[] arr){
        //优化
        boolean flag=false;//如果内部循环完全没有调换位置，说明已经有序，可以直接返回
        for (int i=0;i<arr.length-1;i++){
            for (int j=0;j<arr.length-1-i;j++){
                if(arr[j]>arr[j+1]){
                    flag=true;
                    int p=arr[j+1];
                    arr[j+1]=arr[j];
                    arr[j]=p;
                }
            }
            if(!flag){
                System.out.println("直接跳出，i="+i);
                break;
            }
            flag=false;
        }
        return arr;
    }

}
